package cn.b.sky.mes.hr.dao;

import java.util.List;

import cn.b.sky.mes.hr.model.PersonnelTypeAssign;
import cn.b.sky.mes.hr.model.condition.PersonnelTypeAssignCondition;
import org.apache.ibatis.annotations.Param;

/**
 * 
 * <strong>Title : PersonnelTypeAssignDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.hr.dao<br></strong>
 * <strong>Description : </strong>人员与类型管理数据接口<br> 
 * <strong>Create on : 2016-3-24 上午10:25:21<br></strong>
 * <p>
 * @author lidapeng<br> 
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface PersonnelTypeAssignDao {

  /**
   * 
   * <strong>Title : selectPTAByCondition<br></strong>
   * <strong>Description : </strong>根据条件分页查询人员关系数据<br> 
   * <strong>Create on : 2016-3-24 上午10:44:54<br></strong>
   * <p>
   * @param condition
   * @return
   * List<PersonnelTypeAssign>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelTypeAssign> selectPTAByCondition(PersonnelTypeAssignCondition condition);

  /**
   * 
   * <strong>Title : selectPTACountByCondition<br></strong>
   * <strong>Description : </strong>查询总条数<br> 
   * <strong>Create on : 2016-3-24 上午10:45:23<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectPTACountByCondition(PersonnelTypeAssignCondition condition);

  /**
   * 
   * <strong>Title : selectPTAByCode<br></strong>
   * <strong>Description : </strong>查询详情<br> 
   * <strong>Create on : 2016-3-24 上午10:45:39<br></strong>
   * <p>
   * @param siteCode
   * @param personnelCode
   * @param personnelTypeCode
   * @return
   * PersonnelTypeAssign
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PersonnelTypeAssign selectPTAByCode(@Param("siteCode") String siteCode, @Param("personnelCode") String personnelCode,
      @Param("personnelTypeCode") String personnelTypeCode);

  /**
   * 
   * <strong>Title : insertPTA<br></strong>
   * <strong>Description : </strong>保存<br> 
   * <strong>Create on : 2016-3-24 上午10:45:52<br></strong>
   * <p>
   * @param pta
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPTA(PersonnelTypeAssign pta);

  /**
   * 
   * <strong>Title : updatePTA<br></strong>
   * <strong>Description : </strong>修改<br> 
   * <strong>Create on : 2016-3-24 上午10:46:06<br></strong>
   * <p>
   * @param pta
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePTA(PersonnelTypeAssign pta);

  /**
   * 
   * <strong>Title : deletePTA<br></strong>
   * <strong>Description : </strong>删除<br> 
   * <strong>Create on : 2016-3-24 上午10:46:14<br></strong>
   * <p>
   * @param siteCode
   * @param personnelCode
   * @param personnelTypeCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deletePTA(@Param("siteCode") String siteCode, @Param("personnelCode") String personnelCode,
      @Param("personnelTypeCode") String personnelTypeCode);

  /**
   * 
   * <strong>Title : updateDefaultTypeFlag<br></strong>
   * <strong>Description : </strong>修改状态<br> 
   * <strong>Create on : 2016-3-30 下午3:11:19<br></strong>
   * <p>
   * @param siteCode
   * @param personnelCode
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateDefaultTypeFlag(@Param("siteCode") String siteCode, @Param("personnelCode") String personnelCode);

  /**
   * 
   * <strong>Title : getPersonnelTypeAssignsByPersonnel<br></strong>
   * <strong>Description : </strong>根据人员查询人员相关类型数据<br> 
   * <strong>Create on : 2016年3月30日 上午11:18:46<br></strong>
   * <p>
   * @param siteCode
   * @param personnelCode
   * @return
   * List<PersonnelTypeAssign>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelTypeAssign> getPTAsByPersonnel(@Param("siteCode") String siteCode,
      @Param("personnelCode") String personnelCode);
}
